Tömb feltöltése véletlen számokkal, elrendezése,  majd egy bekért szám keresése a tömbben bináris kereséssel, eljárások használatával (BinarisKereses.pas)

program BinarisKereses;
uses crt;
var i,i0,i1,i2,t,sz,x,j,n:integer;
    a:array [1..100] of integer;

procedure tombfeltoltes;
begin
   i:=1;
   write('Hany darab szam legyen a tombben? ');
   readln(n);
   while(i<=n) do begin
      a[i]:=trunc((10)*random+1);
      i:=i+1;
      end;
   end;

procedure rendezes;
begin
   i:=1;
   while(i<n) do begin
      j:=i+1;
      while(j<=n) do begin
         if (a[j]<a[i]) then begin
            x:=a[j];
            a[j]:=a[i];
            a[i]:=x;
            end;
         j:=j+1;
         end;
      i:=i+1;
      end;

   writeln('A szamok rendezes utan:');
   i:=1;
   while(i<=n) do begin
      writeln('A tomb ',i,'. eleme: ',a[i]);
      i:=i+1;
      end;
   end;

procedure kereses;
begin
   t:=0;
   write('A keresett szam: ');
   readln(sz);
   i1:=1;
   i2:=n;
   while(i1<=i2) do begin
      i:=trunc((i1+i2)/2);
      if (a[i]=sz) then break;
      if (sz<a[i]) then begin
         i2:=i-1;
         end
     else
         i1:=i+1;
     end;

   i0:=i;
   while (i1<=i) do begin
      if (a[i]=sz) then begin
         writeln('A talalat a sorozat ',i,'. eleme');
         t:=t+1;
         i:=i-1;
         end
      else break;
      end;

   i:=i0+1;
   while (i<=i2) do begin
      if (a[i]=sz) then begin
         writeln('A talalat a sorozat ',i,'. eleme');
         t:=t+1;
         i:=i+1;
         end
      else break;
      end;

   if (t=0) then writeln ('Nincs talalat.')
   else writeln('A talalatok szama: ',t);
   end;

BEGIN
   clrscr;
   tombfeltoltes;
   rendezes;
   kereses;
END.